/* Copyright (c) [2020] [ylc]. Licensed under Apache-2.0 License. */

#include "my_define.h"

//测试结果：在4M的线程下扫描io，最大可接受8K的scl频率

//硬件接口
//SDA PD4
//SCL PD5

static void i2c_IoInit(void) {
    //io初始化输入
    GPIO_InitTypeDef GPIO_Initure;

    GPIO_Initure.Pin = GPIO_PIN_4 | GPIO_PIN_5;
    GPIO_Initure.OutputEn = DISABLE;
    GPIO_Initure.InputEn = ENABLE;
    GPIO_Initure.PullupEn = DISABLE;
    HAL_GPIO_Init(GPIOD, &GPIO_Initure);
}

static void i2c_SdaH(void) {
    HAL_GPIO_SetInOut(GPIOD, GPIO_PIN_4, ENABLE, DISABLE);
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4, GPIO_PIN_RESET);
}

static void i2c_SdaL(void) {
    HAL_GPIO_SetInOut(GPIOD, GPIO_PIN_4, ENABLE, ENABLE);
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4, GPIO_PIN_RESET);
}

static u8 i2c_ReadSda(void) {
    return HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_4);
}

static u8 i2c_ReadScl(void) {
    return HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_5);
}